package com.turing.post.cardmanagement.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 卡挂失解挂失登记薄
 * 
 * @author kz
 * @date 2013-01-14
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "CardLoss")
public class CardLoss implements Serializable {
	/**
	 * 00-卡临时挂失
	 */
	public final static String CARDLOSS_TRANTYPE_TEMPORARY = "00";
	/**
	 * 01-卡正式挂失
	 */
	public final static String CARDLOSS_TRANTYPE_OFFICIAL = "01";
	/**
	 * 02-卡解挂失
	 */
	public final static String CARDLOSS_TRANTYPE_RELIEVE = "02";
	/**
	 * 卡挂失Id
	 */
	private BigInteger cardLossId;
	
	/**
	 * 挂失单号
	 */
	private String cardLossOrderSeq;
	/**
	 * 卡号
	 */
	private String cardNo;
	/**
	 * 主账号
	 */
	private BigInteger masterAccNo;
	/**
	 * 发卡商号
	 */
	private String issueCompanyNo;
	/**
	 * 机构号
	 */
	private String branchNo;
	/**
	 * 持卡人姓名：实名卡中自动获取
	 */
	private String cardHolder;
	/**
	 * 持卡人证件类型：实名卡中自动获取
	 */
	private BigInteger cardHolderIdType;
	/**
	 * 持卡人证件号：实名卡中自动获取
	 */
	private String cardHolderIdNo;
	/**
	 * 挂失人姓名
	 */
	private String lossName;
	/**
	 * 挂失人证件类型
	 */
	private Integer lossIdType;
	/**
	 * 挂失人证件号
	 */
	private String lossIdNo;
	/**
	 * 挂失人证件图片
	 */
	private BigInteger lossIdImageId;
	/**
	 * 代理人姓名
	 */
	private String proxyName;
	/**
	 * 代理人证件类型
	 */
	private Integer proxyIdType;
	/**
	 * 代理人证件号
	 */
	private String proxyIdNo;
	/**
	 * 代理人证件图片
	 */
	private BigInteger proxyIdImageId;
	/**
	 * 交易类型00 – 临时挂失 01 – 正式挂失 02 – 解挂失
	 */
	private String tranType;
	/**
	 * 卡余额
	 */
	private BigInteger balance;
	/**
	 * 操作员
	 */
	private BigInteger operId;
	/**
	 * 交易时间
	 */
	private Date tranTime;
	/**
	 * 账务日期
	 */
	private Date tranDate;
	/**
	 * 备注
	 */
	private String remark;
	
	/**
	 * (UNI,FK) 凭证种类ID int Not Null
	 */
	private BigInteger voucherId;
	/**
	 * (UNI) 凭证号 Varchar（40） Not Null
	 */
	private String voucherNo;

	@Column(name = "VOUCHERID", nullable = false)
	public BigInteger getVoucherId() {
		return voucherId;
	}
	
	public void setVoucherId(BigInteger voucherId) {
		this.voucherId = voucherId;
	}

	@Column(name = "VOUCHERNO", nullable = false)
	public String getVoucherNo() {
		return voucherNo;
	}

	public void setVoucherNo(String voucherNo) {
		this.voucherNo = voucherNo;
	}

	@Id
	@Column(name = "CARDLOSSID", nullable = false)
	public BigInteger getCardLossId() {
		return cardLossId;
	}

	public void setCardLossId(BigInteger cardLossId) {
		this.cardLossId = cardLossId;
	}
	
	@Column(name = "CARDLOSSORDERSEQ", nullable = false)
	public String getCardLossOrderSeq() {
		return cardLossOrderSeq;
	}

	public void setCardLossOrderSeq(String cardLossOrderSeq) {
		this.cardLossOrderSeq = cardLossOrderSeq;
	}
	
	@Column(name = "CARDNO", nullable = false)
	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	@Column(name = "MASTERACCNO", nullable = false)
	public BigInteger getMasterAccNo() {
		return masterAccNo;
	}

	public void setMasterAccNo(BigInteger masterAccNo) {
		this.masterAccNo = masterAccNo;
	}

	@Column(name = "ISSUECOMPANYNO", nullable = false)
	public String getIssueCompanyNo() {
		return issueCompanyNo;
	}

	public void setIssueCompanyNo(String issueCompanyNo) {
		this.issueCompanyNo = issueCompanyNo;
	}

	@Column(name = "BRANCHNO", nullable = false)
	public String getBranchNo() {
		return branchNo;
	}

	public void setBranchNo(String branchNo) {
		this.branchNo = branchNo;
	}

	@Column(name = "CARDHOLDER", nullable = false)
	public String getCardHolder() {
		return cardHolder;
	}

	public void setCardHolder(String cardHolder) {
		this.cardHolder = cardHolder;
	}

	@Column(name = "CARDHOLDERIDTYPE", nullable = false)
	public BigInteger getCardHolderIdType() {
		return cardHolderIdType;
	}

	public void setCardHolderIdType(BigInteger cardHolderIdType) {
		this.cardHolderIdType = cardHolderIdType;
	}

	@Column(name = "CARDHOLDERIDNO", nullable = false)
	public String getCardHolderIdNo() {
		return cardHolderIdNo;
	}

	public void setCardHolderIdNo(String cardHolderIdNo) {
		this.cardHolderIdNo = cardHolderIdNo;
	}

	@Column(name = "LOSSNAME", nullable = true)
	public String getLossName() {
		return lossName;
	}

	public void setLossName(String lossName) {
		this.lossName = lossName;
	}

	@Column(name = "LOSSIDTYPE", nullable = true)
	public Integer getLossIdType() {
		return lossIdType;
	}

	public void setLossIdType(Integer lossIdType) {
		this.lossIdType = lossIdType;
	}

	@Column(name = "LOSSIDNO", nullable = true)
	public String getLossIdNo() {
		return lossIdNo;
	}

	public void setLossIdNo(String lossIdNo) {
		this.lossIdNo = lossIdNo;
	}

	@Column(name = "LOSSIDIMAGEID", nullable = true)
	public BigInteger getLossIdImageId() {
		return lossIdImageId;
	}

	public void setLossIdImageId(BigInteger lossIdImageId) {
		this.lossIdImageId = lossIdImageId;
	}

	@Column(name = "PROXYNAME", nullable = true)
	public String getProxyName() {
		return proxyName;
	}

	public void setProxyName(String proxyName) {
		this.proxyName = proxyName;
	}

	@Column(name = "PROXYIDTYPE", nullable = true)
	public Integer getProxyIdType() {
		return proxyIdType;
	}

	public void setProxyIdType(Integer proxyIdType) {
		this.proxyIdType = proxyIdType;
	}

	@Column(name = "PROXYIDNO", nullable = true)
	public String getProxyIdNo() {
		return proxyIdNo;
	}

	public void setProxyIdNo(String proxyIdNo) {
		this.proxyIdNo = proxyIdNo;
	}

	@Column(name = "PROXYIDIMAGEID", nullable = true)
	public BigInteger getProxyIdImageId() {
		return proxyIdImageId;
	}

	public void setProxyIdImageId(BigInteger proxyIdImageId) {
		this.proxyIdImageId = proxyIdImageId;
	}

	@Column(name = "TRANTYPE", nullable = false)
	public String getTranType() {
		return tranType;
	}

	public void setTranType(String tranType) {
		this.tranType = tranType;
	}

	@Column(name = "BALANCE", nullable = false)
	public BigInteger getBalance() {
		return balance;
	}

	public void setBalance(BigInteger balance) {
		this.balance = balance;
	}

	@Column(name = "OPERID", nullable = false)
	public BigInteger getOperId() {
		return operId;
	}

	public void setOperId(BigInteger operId) {
		this.operId = operId;
	}

	@Column(name = "TRANTIME", nullable = false)
	public Date getTranTime() {
		return tranTime;
	}

	public void setTranTime(Date tranTime) {
		this.tranTime = tranTime;
	}

	@Column(name = "TRANDATE", nullable = false)
	public Date getTranDate() {
		return tranDate;
	}

	public void setTranDate(Date tranDate) {
		this.tranDate = tranDate;
	}

	@Column(name = "REMARK", nullable = true)
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}
}